import json
from config import BASE_DIR


# 定义 通用 函数，读取json文件，转换成 参数化需要使用的数据类型  [{},{},{}] ---> [(),(),()]
def read_json_file(filename):
    # 打开 json文件，读取数据
    with open(filename, "r", encoding="utf8") as f:
        json_data = json.load(f)

        data_list = []
        # 循环遍历 json_data, 依次取出 每一组{}，转换成(), 追加到 空[]中
        for data in json_data:
            # # 取每组{}的value值，转成元组
            tmp = tuple(data.values())
            # 将元组追加到空列表
            data_list.append(tmp)

        # 返回, 必须放到 for 循环以外！
        return data_list


if __name__ == '__main__':
    # 调用 自己封装的函数，传入 json文件名   Linux .  ..
    # ret = read_json_file("../data/ihrm_login.json")
    ret = read_json_file(BASE_DIR + "/data/ihrm_login.json")
    print("读取json文件转化结果：", ret)

"""
分析过程：
def read_json_file(filename):
    # 打开 json文件，读取数据
    with open(filename, "r", encoding="utf8") as f:
        json_data = json.load(f)
        # print("读取的json数据：", json_data)

        # 创建空列表
        data_list = []
        # 循环遍历 json_data, 依次取出 每一组{}，转换成(), 追加到 空[]中
        for data in json_data:
            # 获取 每组{} 中的 value 值
            val = data.values()
            # print("获取 value:", val)
            # 将 value 值，转换成 元组
            tmp = tuple(val)
            # print("转元组:", tmp)
            # 将 元组，追加到空列表中
            data_list.append(tmp)
            # print("列表：", data_list)

        # 返回, 必须放到 for 循环以外！
        return data_list
"""